home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / TextUtils.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  21.6 KB  |  984 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        TextUtils.a
  3. ;
  4. ;    Contains:    Text Utilities Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__TEXTUTILS__') = 'UNDEFINED' THEN
  21. __TEXTUTILS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__SCRIPT__') = 'UNDEFINED' THEN
  30.     include 'Script.a'
  31.     ENDIF
  32. ;        include 'Quickdraw.a'                                        ;
  33. ;            include 'MixedMode.a'                                    ;
  34. ;            include 'QuickdrawText.a'                                ;
  35. ;        include 'IntlResources.a'                                    ;
  36. ;        include 'Events.a'                                            ;
  37. ;            include 'OSUtils.a'                                    ;
  38. ;                include 'Memory.a'                                    ;
  39.  
  40.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  41.     include 'OSUtils.a'
  42.     ENDIF
  43. ;
  44. ;
  45. ;    Here are the current routine names and the translations to the older forms.
  46. ;    Please use the newer forms in all new code and migrate the older names out of existing
  47. ;    code as maintainance permits.
  48. ;    
  49. ;    New Name                    Old Name(s)
  50. ;    
  51. ;    CompareString                IUCompPString IUMagString IUMagPString IUCompString 
  52. ;    CompareText
  53. ;    DateString                    IUDatePString IUDateString 
  54. ;    EqualString                            
  55. ;    ExtendedToString            FormatX2Str
  56. ;    FindScriptRun
  57. ;    FindWordBreaks                NFindWord FindWord
  58. ;    FormatRecToString            Format2Str
  59. ;    GetIndString            
  60. ;    GetString
  61. ;    IdenticalString                IUMagIDString IUMagIDPString IUEqualString IUEqualPString
  62. ;    IdenticalText
  63. ;    InitDateCache
  64. ;    LanguageOrder                IULangOrder
  65. ;    LongDateString                IULDateString
  66. ;    LongTimeString                IULTimeString
  67. ;    LowercaseText                LwrText LowerText
  68. ;    Munger
  69. ;    NewString                
  70. ;    NumToString                
  71. ;    RelString                
  72. ;    ReplaceText
  73. ;    ScriptOrder                    IUScriptOrder
  74. ;    SetString                
  75. ;    StringOrder                    IUStringOrder
  76. ;    StringToDate                String2Date
  77. ;    StringToExtended            FormatStr2X
  78. ;    StringToFormatRec            Str2Format
  79. ;    StringToNum                
  80. ;    StringToTime                                
  81. ;    StripDiacritics                StripText
  82. ;    StyledLineBreak
  83. ;    TextOrder
  84. ;    TimeString                    IUTimeString IUTimePString
  85. ;    TruncString
  86. ;    TruncText
  87. ;    UpperString                    UprString
  88. ;    UppercaseStripDiacritics    StripUpperText
  89. ;    UppercaseText                UprText UprText
  90. ;
  91. ; New constants for System 7.0: 
  92.  
  93. ; Constants for truncWhere argument in TruncString and TruncText 
  94. truncEnd                        EQU        0                    ; Truncate at end 
  95. truncMiddle                        EQU        $4000                ; Truncate in middle 
  96. smTruncEnd                        EQU        0                    ; Truncate at end - obsolete 
  97. smTruncMiddle                    EQU        $4000                ; Truncate in middle - obsolete 
  98. ; Constants for TruncString and TruncText results 
  99. notTruncated                    EQU        0                    ; No truncation was necessary 
  100. truncated                        EQU        1                    ; Truncation performed 
  101. truncErr                        EQU        -1                    ; General error 
  102. smNotTruncated                    EQU        0                    ; No truncation was necessary - obsolete 
  103. smTruncated                        EQU        1                    ; Truncation performed    - obsolete 
  104. smTruncErr                        EQU        -1                    ; General error - obsolete 
  105.  
  106. fVNumber                        EQU        0                    ; first version of NumFormatString 
  107. ; Special language code values for Language Order 
  108. systemCurLang                    EQU        -2                    ; current (itlbLang) lang for system script 
  109. systemDefLang                    EQU        -3                    ; default (table) lang for system script 
  110. currentCurLang                    EQU        -4                    ; current (itlbLang) lang for current script 
  111. currentDefLang                    EQU        -5                    ; default lang for current script 
  112. scriptCurLang                    EQU        -6                    ; current (itlbLang) lang for specified script 
  113. scriptDefLang                    EQU        -7                    ; default language for a specified script 
  114.  
  115. iuSystemCurLang                    EQU        -2                    ; <obsolete> current (itlbLang) lang for system script 
  116. iuSystemDefLang                    EQU        -3                    ; <obsolete> default (table) lang for system script 
  117. iuCurrentCurLang                EQU        -4                    ; <obsolete> current (itlbLang) lang for current script 
  118. iuCurrentDefLang                EQU        -5                    ; <obsolete> default lang for current script 
  119. iuScriptCurLang                    EQU        -6                    ; <obsolete> current (itlbLang) lang for specified script 
  120.  
  121. ; <obsolete> default language for a specified script 
  122. iuScriptDefLang                    EQU        -7
  123.  
  124. ; typedef SInt8             StyledLineBreakCode
  125.  
  126. smBreakWord                        EQU        0
  127. smBreakChar                        EQU        1
  128. smBreakOverflow                    EQU        2
  129.  
  130. ; typedef SInt8             FormatClass
  131.  
  132. fPositive                        EQU        0
  133. fNegative                        EQU        1
  134. fZero                            EQU        2
  135.  
  136. ; typedef SInt8             FormatResultType
  137.  
  138. fFormatOK                        EQU        0
  139. fBestGuess                        EQU        1
  140. fOutOfSynch                        EQU        2
  141. fSpuriousChars                    EQU        3
  142. fMissingDelimiter                EQU        4
  143. fExtraDecimal                    EQU        5
  144. fMissingLiteral                    EQU        6
  145. fExtraExp                        EQU        7
  146. fFormatOverflow                    EQU        8
  147. fFormStrIsNAN                    EQU        9
  148. fBadPartsTable                    EQU        10
  149. fExtraPercent                    EQU        11
  150. fExtraSeparator                    EQU        12
  151. fEmptyFormatString                EQU        13
  152.  
  153. NumFormatString         RECORD    0
  154. fLength                     ds.b   1        ; offset: $0 (0)
  155. fVersion                 ds.b   1        ; offset: $1 (1)
  156. data                     ds.b   254        ; offset: $2 (2)        ; private data 
  157. sizeof                     EQU *            ; size:   $100 (256)
  158.                         ENDR
  159.  
  160. ; typedef struct NumFormatString  NumFormatString
  161. ; typedef struct NumFormatString  NumFormatStringRec
  162. FVector                 RECORD    0
  163. start                     ds.w   1        ; offset: $0 (0)
  164. length                     ds.w   1        ; offset: $2 (2)
  165. sizeof                     EQU *            ; size:   $4 (4)
  166.                         ENDR
  167.  
  168. ; typedef struct FVector     FVector
  169. ; index by [fPositive..fZero] 
  170. ; typedef FVector             TripleInt[3]
  171. ScriptRunStatus         RECORD    0
  172. script                     ds.b   1        ; offset: $0 (0)
  173. runVariant                 ds.b   1        ; offset: $1 (1)
  174. sizeof                     EQU *            ; size:   $2 (2)
  175.                         ENDR
  176.  
  177. ; typedef struct ScriptRunStatus  ScriptRunStatus
  178. ; New types for System 7.0: 
  179. ; Type for truncWhere parameter in new TruncString, TruncText 
  180. ; typedef short             TruncCode
  181.  
  182. shortDate                        EQU        0
  183. longDate                        EQU        1
  184. abbrevDate                        EQU        2
  185.  
  186. ; typedef SInt8             DateForm
  187.  
  188. ; StringToDate status values 
  189. fatalDateTime                    EQU        $8000                ; StringToDate and String2Time mask to a fatal error 
  190. longDateFound                    EQU        1                    ; StringToDate mask to long date found 
  191. leftOverChars                    EQU        2                    ; StringToDate & Time mask to warn of left over characters 
  192. sepNotIntlSep                    EQU        4                    ; StringToDate & Time mask to warn of non-standard separators 
  193. fieldOrderNotIntl                EQU        8                    ; StringToDate & Time mask to warn of non-standard field order 
  194. extraneousStrings                EQU        16                    ; StringToDate & Time mask to warn of unparsable strings in text 
  195. tooManySeps                        EQU        32                    ; StringToDate & Time mask to warn of too many separators 
  196. sepNotConsistent                EQU        64                    ; StringToDate & Time mask to warn of inconsistent separators 
  197. tokenErr                        EQU        $8100                ; StringToDate & Time mask for 'tokenizer err encountered' 
  198. cantReadUtilities                EQU        $8200
  199. dateTimeNotFound                EQU        $8400
  200. dateTimeInvalid                    EQU        $8800
  201.  
  202. ; typedef short             StringToDateStatus
  203. ; typedef short             String2DateStatus
  204. DateCacheRecord         RECORD    0
  205. hidden                     ds.w   256        ; offset: $0 (0)        ; only for temporary use 
  206. sizeof                     EQU *            ; size:   $200 (512)
  207.                         ENDR
  208.  
  209. ; typedef struct DateCacheRecord  DateCacheRecord
  210. ; typedef DateCacheRecord     *DateCachePtr
  211. BreakTable                 RECORD    0
  212. charTypes                 ds.b   256        ; offset: $0 (0)
  213. tripleLength             ds.w   1        ; offset: $100 (256)
  214. triples                     ds.w   1        ; offset: $102 (258)
  215. sizeof                     EQU *            ; size:   $104 (260)
  216.                         ENDR
  217.  
  218. ; typedef struct BreakTable  BreakTable
  219. ; typedef BreakTable         *BreakTablePtr
  220. ; New NBreakTable for System 7.0: 
  221. NBreakTable             RECORD    0
  222. flags1                     ds.b   1        ; offset: $0 (0)
  223. flags2                     ds.b   1        ; offset: $1 (1)
  224. version                     ds.w   1        ; offset: $2 (2)
  225. classTableOff             ds.w   1        ; offset: $4 (4)
  226. auxCTableOff             ds.w   1        ; offset: $6 (6)
  227. backwdTableOff             ds.w   1        ; offset: $8 (8)
  228. forwdTableOff             ds.w   1        ; offset: $A (10)
  229. doBackup                 ds.w   1        ; offset: $C (12)
  230. length                     ds.w   1        ; offset: $E (14)        ; length of NBreakTable 
  231. charTypes                 ds.b   256        ; offset: $10 (16)
  232. tables                     ds.w   1        ; offset: $110 (272)
  233. sizeof                     EQU *            ; size:   $112 (274)
  234.                         ENDR
  235.  
  236. ; typedef struct NBreakTable  NBreakTable
  237. ; typedef NBreakTable         *NBreakTablePtr
  238. ;
  239. ; pascal OSErr InitDateCache(DateCachePtr theCache)
  240. ;
  241.     IF ¬ GENERATINGCFM THEN
  242.         Macro
  243.         _InitDateCache
  244.             dc.w     $2F3C
  245.             dc.w     $8204
  246.             dc.w     $FFF8
  247.             dc.w     $A8B5
  248.         EndM
  249.     ELSE
  250.         IMPORT_CFM_FUNCTION    InitDateCache
  251.     ENDIF
  252.  
  253. ;
  254. ; pascal long Munger(Handle h, long offset, const void *ptr1, long len1, const void *ptr2, long len2)
  255. ;
  256.     IF ¬ GENERATINGCFM THEN
  257.         _Munger:    OPWORD    $A9E0
  258.     ELSE
  259.         IMPORT_CFM_FUNCTION    Munger
  260.     ENDIF
  261.  
  262. ;
  263. ; pascal StringHandle NewString(ConstStr255Param theString)
  264. ;
  265.     IF ¬ GENERATINGCFM THEN
  266.         _NewString:    OPWORD    $A906
  267.     ELSE
  268.         IMPORT_CFM_FUNCTION    NewString
  269.     ENDIF
  270.  
  271. ;
  272. ; pascal void SetString(StringHandle theString, ConstStr255Param strNew)
  273. ;
  274.     IF ¬ GENERATINGCFM THEN
  275.         _SetString:    OPWORD    $A907
  276.     ELSE
  277.         IMPORT_CFM_FUNCTION    SetString
  278.     ENDIF
  279.  
  280. ;
  281. ; pascal StringHandle GetString(short stringID)
  282. ;
  283.     IF ¬ GENERATINGCFM THEN
  284.         _GetString:    OPWORD    $A9BA
  285.     ELSE
  286.         IMPORT_CFM_FUNCTION    GetString
  287.     ENDIF
  288.  
  289. ;
  290. ; pascal short ScriptOrder(ScriptCode script1, ScriptCode script2)
  291. ;
  292.     IF ¬ GENERATINGCFM THEN
  293.         Macro
  294.         _ScriptOrder
  295.             move.w    #$001E,-(sp)
  296.             dc.w     $A9ED
  297.         EndM
  298.     ELSE
  299.         IMPORT_CFM_FUNCTION    ScriptOrder
  300.     ENDIF
  301.  
  302. ;
  303. ; pascal StyledLineBreakCode StyledLineBreak(Ptr textPtr, long textLen, long textStart, long textEnd, long flags, Fixed *textWidth, long *textOffset)
  304. ;
  305.     IF ¬ GENERATINGCFM THEN
  306.         Macro
  307.         _StyledLineBreak
  308.             dc.w     $2F3C
  309.             dc.w     $821C
  310.             dc.w     $FFFE
  311.             dc.w     $A8B5
  312.         EndM
  313.     ELSE
  314.         IMPORT_CFM_FUNCTION    StyledLineBreak
  315.     ENDIF
  316.  
  317. ;
  318. ; pascal short TruncString(short width, Str255 theString, TruncCode truncWhere)
  319. ;
  320.     IF ¬ GENERATINGCFM THEN
  321.         Macro
  322.         _TruncString
  323.             dc.w     $2F3C
  324.             dc.w     $8208
  325.             dc.w     $FFE0
  326.             dc.w     $A8B5
  327.         EndM
  328.     ELSE
  329.         IMPORT_CFM_FUNCTION    TruncString
  330.     ENDIF
  331.  
  332. ;
  333. ; pascal short TruncText(short width, Ptr textPtr, short *length, TruncCode truncWhere)
  334. ;
  335.     IF ¬ GENERATINGCFM THEN
  336.         Macro
  337.         _TruncText
  338.             dc.w     $2F3C
  339.             dc.w     $820C
  340.             dc.w     $FFDE
  341.             dc.w     $A8B5
  342.         EndM
  343.     ELSE
  344.         IMPORT_CFM_FUNCTION    TruncText
  345.     ENDIF
  346.  
  347. ;
  348. ; pascal short ReplaceText(Handle baseText, Handle substitutionText, Str15 key)
  349. ;
  350.     IF ¬ GENERATINGCFM THEN
  351.         Macro
  352.         _ReplaceText
  353.             dc.w     $2F3C
  354.             dc.w     $820C
  355.             dc.w     $FFDC
  356.             dc.w     $A8B5
  357.         EndM
  358.     ELSE
  359.         IMPORT_CFM_FUNCTION    ReplaceText
  360.     ENDIF
  361.  
  362. ;
  363. ; pascal void FindWordBreaks(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, BreakTablePtr breaks, OffsetTable offsets, ScriptCode script)
  364. ;
  365.     IF ¬ GENERATINGCFM THEN
  366.         Macro
  367.         _FindWordBreaks
  368.             dc.w     $2F3C
  369.             dc.w     $C012
  370.             dc.w     $001A
  371.             dc.w     $A8B5
  372.         EndM
  373.     ELSE
  374.         IMPORT_CFM_FUNCTION    FindWordBreaks
  375.     ENDIF
  376.  
  377. ;
  378. ; pascal void LowercaseText(Ptr textPtr, short len, ScriptCode script)
  379. ;
  380.     IF ¬ GENERATINGCFM THEN
  381.         Macro
  382.         _LowercaseText
  383.             move.w    #$0000,-(sp)
  384.             dc.w     $2F3C
  385.             dc.w     $800A
  386.             dc.w     $FFB6
  387.             dc.w     $A8B5
  388.         EndM
  389.     ELSE
  390.         IMPORT_CFM_FUNCTION    LowercaseText
  391.     ENDIF
  392.  
  393. ;
  394. ; pascal void UppercaseText(Ptr textPtr, short len, ScriptCode script)
  395. ;
  396.     IF ¬ GENERATINGCFM THEN
  397.         Macro
  398.         _UppercaseText
  399.             move.w    #$0400,-(sp)
  400.             dc.w     $2F3C
  401.             dc.w     $800A
  402.             dc.w     $FFB6
  403.             dc.w     $A8B5
  404.         EndM
  405.     ELSE
  406.         IMPORT_CFM_FUNCTION    UppercaseText
  407.     ENDIF
  408.  
  409. ;
  410. ; pascal void StripDiacritics(Ptr textPtr, short len, ScriptCode script)
  411. ;
  412.     IF ¬ GENERATINGCFM THEN
  413.         Macro
  414.         _StripDiacritics
  415.             move.w    #$0200,-(sp)
  416.             dc.w     $2F3C
  417.             dc.w     $800A
  418.             dc.w     $FFB6
  419.             dc.w     $A8B5
  420.         EndM
  421.     ELSE
  422.         IMPORT_CFM_FUNCTION    StripDiacritics
  423.     ENDIF
  424.  
  425. ;
  426. ; pascal void UppercaseStripDiacritics(Ptr textPtr, short len, ScriptCode script)
  427. ;
  428.     IF ¬ GENERATINGCFM THEN
  429.         Macro
  430.         _UppercaseStripDiacritics
  431.             move.w    #$0600,-(sp)
  432.             dc.w     $2F3C
  433.             dc.w     $800A
  434.             dc.w     $FFB6
  435.             dc.w     $A8B5
  436.         EndM
  437.     ELSE
  438.         IMPORT_CFM_FUNCTION    UppercaseStripDiacritics
  439.     ENDIF
  440.  
  441. ;
  442. ; pascal ScriptRunStatus FindScriptRun(Ptr textPtr, long textLen, long *lenUsed)
  443. ;
  444.     IF ¬ GENERATINGCFM THEN
  445.         Macro
  446.         _FindScriptRun
  447.             dc.w     $2F3C
  448.             dc.w     $820C
  449.             dc.w     $0026
  450.             dc.w     $A8B5
  451.         EndM
  452.     ELSE
  453.         IMPORT_CFM_FUNCTION    FindScriptRun
  454.     ENDIF
  455.  
  456. ;
  457. ; pascal void UpperString(Str255 theString, Boolean diacSensitive)
  458. ;
  459.     IF ¬ GENERATINGCFM THEN
  460.         _UpperString:    OPWORD    $A054
  461.     ELSE
  462.         IMPORT_CFM_FUNCTION    UpperString
  463.     ENDIF
  464.  
  465. ;
  466. ; pascal void StringToNum(ConstStr255Param theString, long *theNum)
  467. ;
  468.     IF ¬ GENERATINGCFM THEN
  469.         Macro
  470.         _StringToNum
  471.             move.w    #$0001,-(sp)
  472.             dc.w     $A9EE
  473.         EndM
  474.     ELSE
  475.         IMPORT_CFM_FUNCTION    StringToNum
  476.     ENDIF
  477.  
  478. ;
  479. ; pascal void NumToString(long theNum, Str255 theString)
  480. ;
  481.     IF ¬ GENERATINGCFM THEN
  482.         Macro
  483.         _NumToString
  484.             move.w    #$0000,-(sp)
  485.             dc.w     $A9EE
  486.         EndM
  487.     ELSE
  488.         IMPORT_CFM_FUNCTION    NumToString
  489.     ENDIF
  490.  
  491. ;
  492. ; pascal short RelString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSensitive, Boolean diacSensitive)
  493. ;
  494.     IF ¬ GENERATINGCFM THEN
  495.         _RelString:    OPWORD    $A050
  496.     ELSE
  497.         IMPORT_CFM_FUNCTION    RelString
  498.     ENDIF
  499.  
  500. ;
  501. ; pascal StringToDateStatus StringToDate(Ptr textPtr, long textLen, DateCachePtr theCache, long *lengthUsed, LongDateRec *dateTime)
  502. ;
  503.     IF ¬ GENERATINGCFM THEN
  504.         Macro
  505.         _StringToDate
  506.             dc.w     $2F3C
  507.             dc.w     $8214
  508.             dc.w     $FFF6
  509.             dc.w     $A8B5
  510.         EndM
  511.     ELSE
  512.         IMPORT_CFM_FUNCTION    StringToDate
  513.     ENDIF
  514.  
  515. ;
  516. ; pascal StringToDateStatus StringToTime(Ptr textPtr, long textLen, DateCachePtr theCache, long *lengthUsed, LongDateRec *dateTime)
  517. ;
  518.     IF ¬ GENERATINGCFM THEN
  519.         Macro
  520.         _StringToTime
  521.             dc.w     $2F3C
  522.             dc.w     $8214
  523.             dc.w     $FFF4
  524.             dc.w     $A8B5
  525.         EndM
  526.     ELSE
  527.         IMPORT_CFM_FUNCTION    StringToTime
  528.     ENDIF
  529.  
  530. ;
  531. ; pascal FormatStatus ExtendedToString(extended80 *x, const NumFormatString *myCanonical, const NumberParts *partsTable, Str255 outString)
  532. ;
  533.     IF ¬ GENERATINGCFM THEN
  534.         Macro
  535.         _ExtendedToString
  536.             dc.w     $2F3C
  537.             dc.w     $8210
  538.             dc.w     $FFE8
  539.             dc.w     $A8B5
  540.         EndM
  541.     ELSE
  542.         IMPORT_CFM_FUNCTION    ExtendedToString
  543.     ENDIF
  544.  
  545. ;
  546. ; pascal FormatStatus StringToExtended(ConstStr255Param source, const NumFormatString *myCanonical, const NumberParts *partsTable, extended80 *x)
  547. ;
  548.     IF ¬ GENERATINGCFM THEN
  549.         Macro
  550.         _StringToExtended
  551.             dc.w     $2F3C
  552.             dc.w     $8210
  553.             dc.w     $FFE6
  554.             dc.w     $A8B5
  555.         EndM
  556.     ELSE
  557.         IMPORT_CFM_FUNCTION    StringToExtended
  558.     ENDIF
  559.  
  560. ;
  561. ; pascal FormatStatus StringToFormatRec(ConstStr255Param inString, const NumberParts *partsTable, NumFormatString *outString)
  562. ;
  563.     IF ¬ GENERATINGCFM THEN
  564.         Macro
  565.         _StringToFormatRec
  566.             dc.w     $2F3C
  567.             dc.w     $820C
  568.             dc.w     $FFEC
  569.             dc.w     $A8B5
  570.         EndM
  571.     ELSE
  572.         IMPORT_CFM_FUNCTION    StringToFormatRec
  573.     ENDIF
  574.  
  575. ;
  576. ; pascal FormatStatus FormatRecToString(const NumFormatString *myCanonical, const NumberParts *partsTable, Str255 outString, TripleInt positions)
  577. ;
  578.     IF ¬ GENERATINGCFM THEN
  579.         Macro
  580.         _FormatRecToString
  581.             dc.w     $2F3C
  582.             dc.w     $8210
  583.             dc.w     $FFEA
  584.             dc.w     $A8B5
  585.         EndM
  586.     ELSE
  587.         IMPORT_CFM_FUNCTION    FormatRecToString
  588.     ENDIF
  589.  
  590. ;
  591. ;    The following functions are old names, but are required for PowerPC builds
  592. ;    becuase InterfaceLib exports these names, instead of the new ones.
  593. ;
  594. ;
  595. ; pascal short IUMagString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  596. ;
  597.     IF ¬ GENERATINGCFM THEN
  598.         Macro
  599.         _IUMagString
  600.             move.w    #$000A,-(sp)
  601.             dc.w     $A9ED
  602.         EndM
  603.     ELSE
  604.         IMPORT_CFM_FUNCTION    IUMagString
  605.     ENDIF
  606.  
  607. ;
  608. ; pascal short IUMagIDString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  609. ;
  610.     IF ¬ GENERATINGCFM THEN
  611.         Macro
  612.         _IUMagIDString
  613.             move.w    #$000C,-(sp)
  614.             dc.w     $A9ED
  615.         EndM
  616.     ELSE
  617.         IMPORT_CFM_FUNCTION    IUMagIDString
  618.     ENDIF
  619.  
  620. ;
  621. ; pascal short IUMagPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  622. ;
  623.     IF ¬ GENERATINGCFM THEN
  624.         Macro
  625.         _IUMagPString
  626.             move.w    #$001A,-(sp)
  627.             dc.w     $A9ED
  628.         EndM
  629.     ELSE
  630.         IMPORT_CFM_FUNCTION    IUMagPString
  631.     ENDIF
  632.  
  633. ;
  634. ; pascal short IUMagIDPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  635. ;
  636.     IF ¬ GENERATINGCFM THEN
  637.         Macro
  638.         _IUMagIDPString
  639.             move.w    #$001C,-(sp)
  640.             dc.w     $A9ED
  641.         EndM
  642.     ELSE
  643.         IMPORT_CFM_FUNCTION    IUMagIDPString
  644.     ENDIF
  645.  
  646. ;
  647. ; pascal void IUDateString(long dateTime, DateForm longFlag, Str255 result)
  648. ;
  649.     IF ¬ GENERATINGCFM THEN
  650.         Macro
  651.         _IUDateString
  652.             dc.w     $4267
  653.             dc.w     $A9ED
  654.         EndM
  655.     ELSE
  656.         IMPORT_CFM_FUNCTION    IUDateString
  657.     ENDIF
  658.  
  659. ;
  660. ; pascal void IUTimeString(long dateTime, Boolean wantSeconds, Str255 result)
  661. ;
  662.     IF ¬ GENERATINGCFM THEN
  663.         Macro
  664.         _IUTimeString
  665.             move.w    #$0002,-(sp)
  666.             dc.w     $A9ED
  667.         EndM
  668.     ELSE
  669.         IMPORT_CFM_FUNCTION    IUTimeString
  670.     ENDIF
  671.  
  672. ;
  673. ; pascal void IUDatePString(long dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  674. ;
  675.     IF ¬ GENERATINGCFM THEN
  676.         Macro
  677.         _IUDatePString
  678.             move.w    #$000E,-(sp)
  679.             dc.w     $A9ED
  680.         EndM
  681.     ELSE
  682.         IMPORT_CFM_FUNCTION    IUDatePString
  683.     ENDIF
  684.  
  685. ;
  686. ; pascal void IUTimePString(long dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  687. ;
  688.     IF ¬ GENERATINGCFM THEN
  689.         Macro
  690.         _IUTimePString
  691.             move.w    #$0010,-(sp)
  692.             dc.w     $A9ED
  693.         EndM
  694.     ELSE
  695.         IMPORT_CFM_FUNCTION    IUTimePString
  696.     ENDIF
  697.  
  698. ;
  699. ; pascal void IULDateString(LongDateTime *dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  700. ;
  701.     IF ¬ GENERATINGCFM THEN
  702.         Macro
  703.         _IULDateString
  704.             move.w    #$0014,-(sp)
  705.             dc.w     $A9ED
  706.         EndM
  707.     ELSE
  708.         IMPORT_CFM_FUNCTION    IULDateString
  709.     ENDIF
  710.  
  711. ;
  712. ; pascal void IULTimeString(LongDateTime *dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  713. ;
  714.     IF ¬ GENERATINGCFM THEN
  715.         Macro
  716.         _IULTimeString
  717.             move.w    #$0016,-(sp)
  718.             dc.w     $A9ED
  719.         EndM
  720.     ELSE
  721.         IMPORT_CFM_FUNCTION    IULTimeString
  722.     ENDIF
  723.  
  724. ;
  725. ; pascal short IUScriptOrder(ScriptCode script1, ScriptCode script2)
  726. ;
  727.     IF ¬ GENERATINGCFM THEN
  728.         Macro
  729.         _IUScriptOrder
  730.             move.w    #$001E,-(sp)
  731.             dc.w     $A9ED
  732.         EndM
  733.     ELSE
  734.         IMPORT_CFM_FUNCTION    IUScriptOrder
  735.     ENDIF
  736.  
  737. ;
  738. ; pascal short IULangOrder(LangCode language1, LangCode language2)
  739. ;
  740.     IF ¬ GENERATINGCFM THEN
  741.         Macro
  742.         _IULangOrder
  743.             move.w    #$0020,-(sp)
  744.             dc.w     $A9ED
  745.         EndM
  746.     ELSE
  747.         IMPORT_CFM_FUNCTION    IULangOrder
  748.     ENDIF
  749.  
  750. ;
  751. ; pascal short IUTextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  752. ;
  753.     IF ¬ GENERATINGCFM THEN
  754.         Macro
  755.         _IUTextOrder
  756.             move.w    #$0022,-(sp)
  757.             dc.w     $A9ED
  758.         EndM
  759.     ELSE
  760.         IMPORT_CFM_FUNCTION    IUTextOrder
  761.     ENDIF
  762.  
  763. ;
  764. ; pascal void FindWord(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, BreakTablePtr breaks, OffsetTable offsets)
  765. ;
  766.     IF ¬ GENERATINGCFM THEN
  767.         Macro
  768.         _FindWord
  769.             dc.w     $2F3C
  770.             dc.w     $8012
  771.             dc.w     $001A
  772.             dc.w     $A8B5
  773.         EndM
  774.     ELSE
  775.         IMPORT_CFM_FUNCTION    FindWord
  776.     ENDIF
  777.  
  778. ;
  779. ; pascal void NFindWord(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, NBreakTablePtr nbreaks, OffsetTable offsets)
  780. ;
  781.     IF ¬ GENERATINGCFM THEN
  782.         Macro
  783.         _NFindWord
  784.             dc.w     $2F3C
  785.             dc.w     $8012
  786.             dc.w     $FFE2
  787.             dc.w     $A8B5
  788.         EndM
  789.     ELSE
  790.         IMPORT_CFM_FUNCTION    NFindWord
  791.     ENDIF
  792.  
  793. ;
  794. ; pascal void UprText(Ptr textPtr, short len)
  795. ;
  796.     IF ¬ GENERATINGCFM THEN
  797.         ; parameters: 
  798.         ;     textPtr           => A0
  799.         ;     len               => D0
  800.         _UprText:    OPWORD    $A054
  801.     ELSE
  802.         IMPORT_CFM_FUNCTION    UprText
  803.     ENDIF
  804.  
  805. ;
  806. ; pascal void LwrText(Ptr textPtr, short len)
  807. ;
  808.     IF ¬ GENERATINGCFM THEN
  809.         ; parameters: 
  810.         ;     textPtr           => A0
  811.         ;     len               => D0
  812.         _LwrText:    OPWORD    $A056
  813.     ELSE
  814.         IMPORT_CFM_FUNCTION    LwrText
  815.     ENDIF
  816.  
  817. ;
  818. ; pascal void LowerText(Ptr textPtr, short len)
  819. ;
  820.     IF ¬ GENERATINGCFM THEN
  821.         ; parameters: 
  822.         ;     textPtr           => A0
  823.         ;     len               => D0
  824.         _LowerText:    OPWORD    $A056
  825.     ELSE
  826.         IMPORT_CFM_FUNCTION    LowerText
  827.     ENDIF
  828.  
  829. ;
  830. ; pascal void StripText(Ptr textPtr, short len)
  831. ;
  832.     IF ¬ GENERATINGCFM THEN
  833.         ; parameters: 
  834.         ;     textPtr           => A0
  835.         ;     len               => D0
  836.         _StripText:    OPWORD    $A256
  837.     ELSE
  838.         IMPORT_CFM_FUNCTION    StripText
  839.     ENDIF
  840.  
  841. ;
  842. ; pascal void UpperText(Ptr textPtr, short len)
  843. ;
  844.     IF ¬ GENERATINGCFM THEN
  845.         ; parameters: 
  846.         ;     textPtr           => A0
  847.         ;     len               => D0
  848.         _UpperText:    OPWORD    $A456
  849.     ELSE
  850.         IMPORT_CFM_FUNCTION    UpperText
  851.     ENDIF
  852.  
  853. ;
  854. ; pascal void StripUpperText(Ptr textPtr, short len)
  855. ;
  856.     IF ¬ GENERATINGCFM THEN
  857.         ; parameters: 
  858.         ;     textPtr           => A0
  859.         ;     len               => D0
  860.         _StripUpperText:    OPWORD    $A656
  861.     ELSE
  862.         IMPORT_CFM_FUNCTION    StripUpperText
  863.     ENDIF
  864.  
  865. ;
  866. ;    The following provide direct function prototypes for new names for 68k
  867. ;
  868. ;
  869. ; pascal void DateString(long dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  870. ;
  871.     IF ¬ GENERATINGCFM THEN
  872.         Macro
  873.         _DateString
  874.             move.w    #$000E,-(sp)
  875.             dc.w     $A9ED
  876.         EndM
  877.     ELSE
  878.         IMPORT_CFM_FUNCTION    DateString
  879.     ENDIF
  880.  
  881. ;
  882. ; pascal void TimeString(long dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  883. ;
  884.     IF ¬ GENERATINGCFM THEN
  885.         Macro
  886.         _TimeString
  887.             move.w    #$0010,-(sp)
  888.             dc.w     $A9ED
  889.         EndM
  890.     ELSE
  891.         IMPORT_CFM_FUNCTION    TimeString
  892.     ENDIF
  893.  
  894. ;
  895. ; pascal void LongDateString(LongDateTime *dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  896. ;
  897.     IF ¬ GENERATINGCFM THEN
  898.         Macro
  899.         _LongDateString
  900.             move.w    #$0014,-(sp)
  901.             dc.w     $A9ED
  902.         EndM
  903.     ELSE
  904.         IMPORT_CFM_FUNCTION    LongDateString
  905.     ENDIF
  906.  
  907. ;
  908. ; pascal void LongTimeString(LongDateTime *dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  909. ;
  910.     IF ¬ GENERATINGCFM THEN
  911.         Macro
  912.         _LongTimeString
  913.             move.w    #$0016,-(sp)
  914.             dc.w     $A9ED
  915.         EndM
  916.     ELSE
  917.         IMPORT_CFM_FUNCTION    LongTimeString
  918.     ENDIF
  919.  
  920. ;
  921. ; pascal short CompareString(ConstStr255Param aStr, ConstStr255Param bStr, Handle itl2Handle)
  922. ;
  923.     IF ¬ GENERATINGCFM THEN
  924.         _CompareString:    OPWORD    $A03C
  925.     ELSE
  926.         IMPORT_CFM_FUNCTION    CompareString
  927.     ENDIF
  928.  
  929. ;
  930. ; pascal short CompareText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  931. ;
  932.     IF ¬ GENERATINGCFM THEN
  933.         Macro
  934.         _CompareText
  935.             move.w    #$001A,-(sp)
  936.             dc.w     $A9ED
  937.         EndM
  938.     ELSE
  939.         IMPORT_CFM_FUNCTION    CompareText
  940.     ENDIF
  941.  
  942. ;
  943. ; pascal short IdenticalText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  944. ;
  945.     IF ¬ GENERATINGCFM THEN
  946.         Macro
  947.         _IdenticalText
  948.             move.w    #$001C,-(sp)
  949.             dc.w     $A9ED
  950.         EndM
  951.     ELSE
  952.         IMPORT_CFM_FUNCTION    IdenticalText
  953.     ENDIF
  954.  
  955. ;
  956. ; pascal short LanguageOrder(LangCode language1, LangCode language2)
  957. ;
  958.     IF ¬ GENERATINGCFM THEN
  959.         Macro
  960.         _LanguageOrder
  961.             move.w    #$0020,-(sp)
  962.             dc.w     $A9ED
  963.         EndM
  964.     ELSE
  965.         IMPORT_CFM_FUNCTION    LanguageOrder
  966.     ENDIF
  967.  
  968. ;
  969. ; pascal short TextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  970. ;
  971.     IF ¬ GENERATINGCFM THEN
  972.         Macro
  973.         _TextOrder
  974.             move.w    #$0022,-(sp)
  975.             dc.w     $A9ED
  976.         EndM
  977.     ELSE
  978.         IMPORT_CFM_FUNCTION    TextOrder
  979.     ENDIF
  980.  
  981.     IF ¬ OLDROUTINELOCATIONS  THEN
  982.     ENDIF
  983.     ENDIF ; __TEXTUTILS__
  984.